Skip to content

refactor: move cli/templates to a top-level templates/ directory - #3596

Merged
kojiwakayama merged 2 commits into
mainfrom
refactor/templates-top-level
Aug 11, 2026
Merged

refactor: move cli/templates to a top-level templates/ directory#3596
kojiwakayama merged 2 commits into
mainfrom
refactor/templates-top-level

Conversation

@kojiwakayama

Copy link
Copy Markdown
Contributor

What

Moves cli/templates/ to a top-level templates/ directory. This PR is only the move — no package.json, no publishing config, no extraction.

Why

The directory stopped being a CLI concern:

  • src/ already reaches into cli/templates/integrations/ from five test files (src/oauth/providers/{atlassian,google,microsoft,common}.test.ts, src/integrations/_data.test.ts) — a layering violation today.
  • veryfront-api#4323 is making the API read the same generated template manifest.

The repo's own precedent for a separately-published thing is a top-level sibling (extensions/ext-*), so templates/ follows that. Preparation for veryfront-issue-inbox#477 (@veryfront/templates).

All four subdirectories move together — ai-rules/, features/, files/, integrations/ — plus the loaders (index.ts, loader.ts, types.ts, feature-loader.ts, integration-loader*.ts) and the generated manifest.json, so the package has a single root. Every file moved with git mv, so history follows.

Acceptance: a scaffolded project is byte-identical

Two independent proofs, both run before and after the move:

1. Real CLI scaffolding. origin/main was extracted to a scratch tree with git archive, and all seven starter templates plus an ai-agent --integrations github,slack build were scaffolded with veryfront init --skip-install --skip-env-prompt from each tree:

diff -r scaffold-before scaffold-after   →  no differences (162 files)

CLI stdout was identical too.

2. Loader-API dump. A 443-file dump of everything the templates package can produce — every starter tree, every integration tree raw + namespaced + merged, integration base files, all 204 connector configs, all ai-rules, all feature configs, and the registry ordering — diffed clean.

git diff --stat -M reports 926 files changed, 0 insertions(+), 0 deletions(-) for the moved tree: a pure rename with zero content edits.

Manifest

The manifest is generated (scripts/build/generate-templates-manifest.ts). Regenerated at its new location it is byte-identical to the version committed on origin/main:

6caa2a70…  before (origin/main:cli/templates/manifest.json)
6caa2a70…  after  (templates/manifest.json)

Template file paths inside the manifest are relative to each template root, so they do not move. Same 48 templates, 464 files.

The lint exclusions still exclude

deno.json excludes templates/files/ and templates/integrations/ so template sources are not linted as framework source. Because lint.include / fmt.include enumerate roots explicitly, templates/** was added there too — otherwise the loaders would have silently dropped out of both gates. Verified by comparing file counts against the origin/main tree:

gate before after
deno lint Checked 4917 files Checked 4917 files
deno fmt --check src/ cli/ react/ [templates/] Checked 4763 files Checked 4763 files
sanitizer opt-out baseline 404/404 404/404
skipped-test baseline 18/18 18/18
cwd-relative test reads 0 module scope, 95 across 21 files 0 module scope, 95 across 21 files
duplicate-function groups 234 234

Not one more file, not one fewer.

Scan roots that enumerated src and cli

Several tools hard-code the roots they walk. Left alone, the loaders and their four test files would have quietly left every one of them. templates was added to:

  • scripts/test/coverage-ci.ts (UNIT_COVERAGE_ROOTS) — coverage sharding
  • scripts/lint/check-sanitizer-baseline.ts, check-skipped-tests-baseline.ts, ban-test-only.ts (SCAN_ROOTS)
  • scripts/lint/audit-cwd-relative-test-reads.ts (SCAN_ROOTS)
  • scripts/lint/check-test-typecheck-baseline.ts (listTestFiles)
  • scripts/lint/find-duplicate-functions.ts (DEFAULT_PATHS)
  • deno.json test:unit:parallel and test:coverage:unit (find src cli templates)

Published layout change (breaks veryfront-api#4323's assumption)

Verified by running deno task build:npm:

  • was veryfront/esm/cli/templates/manifest.js
  • now veryfront/esm/templates/manifest.js (npm/esm/cli/templates/ no longer exists)

templates is not in the package exports map, so the only way to reach the manifest is a relative URL off an exported entry. veryfront-api#4323 resolves it by hopping off veryfront/cli, which resolves to esm/cli/main.js. That hop must change:

- new URL("./templates/manifest.js",  import.meta.resolve("veryfront/cli"))
+ new URL("../templates/manifest.js", import.meta.resolve("veryfront/cli"))

(The in-repo consumer, cli/commands/install/registry.ts, now emits import manifest from "../../../templates/manifest.js" in the built package — confirmed in npm/esm/.) Not fixed here#4323 needs the one-line update.

Other paths updated

deno.json (exclude, lint/fmt include, fmt + test tasks), .gitignore, socket.yml, .github/actions/setup-deno/action.yml, scripts/build/generate-templates-manifest.ts, scripts/build/generate-integrations-module.ts, scripts/build/npm-package-metadata.test.ts, scripts/lint/{audit-core-deps,ban-zod-imports,find-duplicate-functions}.ts (+ tests), scripts/test/npm-install-smoke.sh, cli/commands/install/registry.ts, all relative imports across cli/, src/, tests/, and cli/README.md. grep -rn "cli/templates" over the repo returns nothing.

Verified locally

fmt:check, lint, typecheck, generate:manifests:check, docs:api-reference:check, docs:validate, every lint:* gate, build:npm, and the full test:unit suite (via the pre-push hook) all pass.

Refs veryfront-issue-inbox#477

Templates stopped being a CLI concern. `src/` already reaches into
`cli/templates/integrations/` from five test files, and veryfront-api is
moving to read the same generated manifest, so keeping the directory
under the CLI package was a layering violation on both sides.

The move follows the repo's existing precedent for separately-shipped
things (`extensions/ext-*`): a top-level sibling. All four subdirectories
move together — `ai-rules/`, `features/`, `files/`, `integrations/` — plus
the loaders and the generated manifest, so the package has one root.

Nothing about template content changes. Every one of the 926 files moves
with `git mv` and zero content edits; the regenerated manifest is
byte-identical to the committed one; and all seven starter templates
scaffolded through the real CLI (plus an ai-agent + github,slack
integration build) diff clean against the same scaffold taken from
origin/main.

The lint exclusions that keep template files out of the source lint gate
move with it. `deno lint` still reports 4917 files and `deno fmt --check`
still reports 4763, exactly as before — the templates are excluded, not
newly linted. Scan roots that enumerated `src` and `cli` (coverage
sharding, sanitizer/skipped-test/typecheck baselines, cwd-relative test
reads, duplicate-function detection, the unit-test file globs) gain
`templates` so the loaders and their tests keep the coverage they had
inside `cli/`.

Published layout changes: the manifest ships at `esm/templates/manifest.js`
instead of `esm/cli/templates/manifest.js`. Consumers resolving it by
relative URL off `veryfront/cli` (`esm/cli/main.js`) need
`../templates/manifest.js` where they used `./templates/manifest.js`.

Refs veryfront-issue-inbox#477
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 757 files, which is 457 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 67db2aa4-43c5-432a-b94a-0f8b35c484a3

📥 Commits

Reviewing files that changed from the base of the PR and between 632af61 and fd59496.

⛔ Files ignored due to path filters (211)
  • templates/files/agentic-workflow/public/favicon.svg is excluded by !**/*.svg
  • templates/files/ai-agent/public/favicon.svg is excluded by !**/*.svg
  • templates/files/coding-agent/public/favicon.svg is excluded by !**/*.svg
  • templates/files/docs-agent/public/favicon.svg is excluded by !**/*.svg
  • templates/files/minimal/public/favicon.svg is excluded by !**/*.svg
  • templates/files/multi-agent-system/public/favicon.svg is excluded by !**/*.svg
  • templates/files/saas-starter/public/favicon.svg is excluded by !**/*.svg
  • templates/integrations/activecampaign/activecampaign.svg is excluded by !**/*.svg
  • templates/integrations/adyen/adyen.svg is excluded by !**/*.svg
  • templates/integrations/airtable/airtable.svg is excluded by !**/*.svg
  • templates/integrations/algolia/algolia.svg is excluded by !**/*.svg
  • templates/integrations/alphavantage/alphavantage.svg is excluded by !**/*.svg
  • templates/integrations/amplitude/amplitude.svg is excluded by !**/*.svg
  • templates/integrations/anthropic/anthropic.svg is excluded by !**/*.svg
  • templates/integrations/apify/apify.svg is excluded by !**/*.svg
  • templates/integrations/apollo/apollo.svg is excluded by !**/*.svg
  • templates/integrations/asana/asana.svg is excluded by !**/*.svg
  • templates/integrations/ashby/ashby.svg is excluded by !**/*.svg
  • templates/integrations/assemblyai/assemblyai.svg is excluded by !**/*.svg
  • templates/integrations/attio/attio.svg is excluded by !**/*.svg
  • templates/integrations/aws/aws.svg is excluded by !**/*.svg
  • templates/integrations/axiom/axiom.svg is excluded by !**/*.svg
  • templates/integrations/azure-blob-storage/azure-blob-storage.svg is excluded by !**/*.svg
  • templates/integrations/azure-document-intelligence/azure-document-intelligence.svg is excluded by !**/*.svg
  • templates/integrations/azure/azure.svg is excluded by !**/*.svg
  • templates/integrations/bamboohr/bamboohr.svg is excluded by !**/*.svg
  • templates/integrations/basecamp/basecamp.svg is excluded by !**/*.svg
  • templates/integrations/betterstack/betterstack.svg is excluded by !**/*.svg
  • templates/integrations/bigcommerce/bigcommerce.svg is excluded by !**/*.svg
  • templates/integrations/billbee/billbee.svg is excluded by !**/*.svg
  • templates/integrations/bitbucket/bitbucket.svg is excluded by !**/*.svg
  • templates/integrations/box/box.svg is excluded by !**/*.svg
  • templates/integrations/brave-search/brave-search.svg is excluded by !**/*.svg
  • templates/integrations/brevo/brevo.svg is excluded by !**/*.svg
  • templates/integrations/browserbase/browserbase.svg is excluded by !**/*.svg
  • templates/integrations/buildkite/buildkite.svg is excluded by !**/*.svg
  • templates/integrations/cal-com/cal-com.svg is excluded by !**/*.svg
  • templates/integrations/calendar/calendar.svg is excluded by !**/*.svg
  • templates/integrations/calendly/calendly.svg is excluded by !**/*.svg
  • templates/integrations/chargebee/chargebee.svg is excluded by !**/*.svg
  • templates/integrations/checkly/checkly.svg is excluded by !**/*.svg
  • templates/integrations/circleci/circleci.svg is excluded by !**/*.svg
  • templates/integrations/cleverreach/cleverreach.svg is excluded by !**/*.svg
  • templates/integrations/clickhouse/clickhouse.svg is excluded by !**/*.svg
  • templates/integrations/clickup/clickup.svg is excluded by !**/*.svg
  • templates/integrations/close/close.svg is excluded by !**/*.svg
  • templates/integrations/cloudflare/cloudflare.svg is excluded by !**/*.svg
  • templates/integrations/coda/coda.svg is excluded by !**/*.svg
  • templates/integrations/cohere/cohere.svg is excluded by !**/*.svg
  • templates/integrations/confluence/confluence.svg is excluded by !**/*.svg
  • templates/integrations/customer-io/customer-io.svg is excluded by !**/*.svg
  • templates/integrations/databricks/databricks.svg is excluded by !**/*.svg
  • templates/integrations/datadog/datadog.svg is excluded by !**/*.svg
  • templates/integrations/datev/datev.svg is excluded by !**/*.svg
  • templates/integrations/daytona/daytona.svg is excluded by !**/*.svg
  • templates/integrations/deel/deel.svg is excluded by !**/*.svg
  • templates/integrations/deepgram/deepgram.svg is excluded by !**/*.svg
  • templates/integrations/dialpad/dialpad.svg is excluded by !**/*.svg
  • templates/integrations/digitalocean/digitalocean.svg is excluded by !**/*.svg
  • templates/integrations/discord/discord.svg is excluded by !**/*.svg
  • templates/integrations/docs-google/docs-google.svg is excluded by !**/*.svg
  • templates/integrations/docusign/docusign.svg is excluded by !**/*.svg
  • templates/integrations/drive/drive.svg is excluded by !**/*.svg
  • templates/integrations/e2b/e2b.svg is excluded by !**/*.svg
  • templates/integrations/elevenlabs/elevenlabs.svg is excluded by !**/*.svg
  • templates/integrations/exa/exa.svg is excluded by !**/*.svg
  • templates/integrations/factorial/factorial.svg is excluded by !**/*.svg
  • templates/integrations/fal/fal.svg is excluded by !**/*.svg
  • templates/integrations/fathom/fathom.svg is excluded by !**/*.svg
  • templates/integrations/figma/figma.svg is excluded by !**/*.svg
  • templates/integrations/finapi/finapi.svg is excluded by !**/*.svg
  • templates/integrations/firecrawl/firecrawl.svg is excluded by !**/*.svg
  • templates/integrations/fireflies/fireflies.svg is excluded by !**/*.svg
  • templates/integrations/fireworks-ai/fireworks-ai.svg is excluded by !**/*.svg
  • templates/integrations/fly-io/fly-io.svg is excluded by !**/*.svg
  • templates/integrations/folk/folk.svg is excluded by !**/*.svg
  • templates/integrations/freshdesk/freshdesk.svg is excluded by !**/*.svg
  • templates/integrations/front/front.svg is excluded by !**/*.svg
  • templates/integrations/gcp/gcp.svg is excluded by !**/*.svg
  • templates/integrations/gemini/gemini.svg is excluded by !**/*.svg
  • templates/integrations/github/github.svg is excluded by !**/*.svg
  • templates/integrations/gitlab/gitlab.svg is excluded by !**/*.svg
  • templates/integrations/gmail/gmail.svg is excluded by !**/*.svg
  • templates/integrations/gocardless/gocardless.svg is excluded by !**/*.svg
  • templates/integrations/gong/gong.svg is excluded by !**/*.svg
  • templates/integrations/google-analytics/google-analytics.svg is excluded by !**/*.svg
  • templates/integrations/google-bigquery/google-bigquery.svg is excluded by !**/*.svg
  • templates/integrations/google-chat/google-chat.svg is excluded by !**/*.svg
  • templates/integrations/google-cloud-storage/google-cloud-storage.svg is excluded by !**/*.svg
  • templates/integrations/google-contacts/google-contacts.svg is excluded by !**/*.svg
  • templates/integrations/google-forms/google-forms.svg is excluded by !**/*.svg
  • templates/integrations/gorgias/gorgias.svg is excluded by !**/*.svg
  • templates/integrations/grafana-cloud/grafana-cloud.svg is excluded by !**/*.svg
  • templates/integrations/greenhouse/greenhouse.svg is excluded by !**/*.svg
  • templates/integrations/groq/groq.svg is excluded by !**/*.svg
  • templates/integrations/guru/guru.svg is excluded by !**/*.svg
  • templates/integrations/gusto/gusto.svg is excluded by !**/*.svg
  • templates/integrations/harvest/harvest.svg is excluded by !**/*.svg
  • templates/integrations/help-scout/help-scout.svg is excluded by !**/*.svg
  • templates/integrations/heroku/heroku.svg is excluded by !**/*.svg
  • templates/integrations/hetzner/hetzner.svg is excluded by !**/*.svg
  • templates/integrations/hubspot/hubspot.svg is excluded by !**/*.svg
  • templates/integrations/huggingface/huggingface.svg is excluded by !**/*.svg
  • templates/integrations/intercom/intercom.svg is excluded by !**/*.svg
  • templates/integrations/ionos/ionos.svg is excluded by !**/*.svg
  • templates/integrations/jira/jira.svg is excluded by !**/*.svg
  • templates/integrations/jotform/jotform.svg is excluded by !**/*.svg
  • templates/integrations/klarna/klarna.svg is excluded by !**/*.svg
  • templates/integrations/klaviyo/klaviyo.svg is excluded by !**/*.svg
  • templates/integrations/langfuse/langfuse.svg is excluded by !**/*.svg
  • templates/integrations/langsmith/langsmith.svg is excluded by !**/*.svg
  • templates/integrations/launchdarkly/launchdarkly.svg is excluded by !**/*.svg
  • templates/integrations/lever/lever.svg is excluded by !**/*.svg
  • templates/integrations/lexoffice/lexoffice.svg is excluded by !**/*.svg
  • templates/integrations/linear/linear.svg is excluded by !**/*.svg
  • templates/integrations/mailchimp/mailchimp.svg is excluded by !**/*.svg
  • templates/integrations/metabase/metabase.svg is excluded by !**/*.svg
  • templates/integrations/mindee/mindee.svg is excluded by !**/*.svg
  • templates/integrations/mistral/mistral.svg is excluded by !**/*.svg
  • templates/integrations/mixpanel/mixpanel.svg is excluded by !**/*.svg
  • templates/integrations/mollie/mollie.svg is excluded by !**/*.svg
  • templates/integrations/monday/monday.svg is excluded by !**/*.svg
  • templates/integrations/mongodb-atlas/mongodb-atlas.svg is excluded by !**/*.svg
  • templates/integrations/moss/moss.svg is excluded by !**/*.svg
  • templates/integrations/neo4j/neo4j.svg is excluded by !**/*.svg
  • templates/integrations/neon/neon.svg is excluded by !**/*.svg
  • templates/integrations/netlify/netlify.svg is excluded by !**/*.svg
  • templates/integrations/new-relic/new-relic.svg is excluded by !**/*.svg
  • templates/integrations/north-data/north-data.svg is excluded by !**/*.svg
  • templates/integrations/notion/notion.svg is excluded by !**/*.svg
  • templates/integrations/onedrive/onedrive.svg is excluded by !**/*.svg
  • templates/integrations/openai/openai.svg is excluded by !**/*.svg
  • templates/integrations/openrouter/openrouter.svg is excluded by !**/*.svg
  • templates/integrations/outlook/outlook.svg is excluded by !**/*.svg
  • templates/integrations/paddle/paddle.svg is excluded by !**/*.svg
  • templates/integrations/pagerduty/pagerduty.svg is excluded by !**/*.svg
  • templates/integrations/pandadoc/pandadoc.svg is excluded by !**/*.svg
  • templates/integrations/paypal/paypal.svg is excluded by !**/*.svg
  • templates/integrations/perplexity/perplexity.svg is excluded by !**/*.svg
  • templates/integrations/persona/persona.svg is excluded by !**/*.svg
  • templates/integrations/personio/personio.svg is excluded by !**/*.svg
  • templates/integrations/pinecone/pinecone.svg is excluded by !**/*.svg
  • templates/integrations/pipedrive/pipedrive.svg is excluded by !**/*.svg
  • templates/integrations/planetscale/planetscale.svg is excluded by !**/*.svg
  • templates/integrations/polygon/polygon.svg is excluded by !**/*.svg
  • templates/integrations/portkey/portkey.svg is excluded by !**/*.svg
  • templates/integrations/posthog/posthog.svg is excluded by !**/*.svg
  • templates/integrations/power-bi/power-bi.svg is excluded by !**/*.svg
  • templates/integrations/productboard/productboard.svg is excluded by !**/*.svg
  • templates/integrations/qdrant/qdrant.svg is excluded by !**/*.svg
  • templates/integrations/qonto/qonto.svg is excluded by !**/*.svg
  • templates/integrations/quickbooks/quickbooks.svg is excluded by !**/*.svg
  • templates/integrations/railway/railway.svg is excluded by !**/*.svg
  • templates/integrations/ramp/ramp.svg is excluded by !**/*.svg
  • templates/integrations/razorpay/razorpay.svg is excluded by !**/*.svg
  • templates/integrations/redis-cloud/redis-cloud.svg is excluded by !**/*.svg
  • templates/integrations/render/render.svg is excluded by !**/*.svg
  • templates/integrations/replicate/replicate.svg is excluded by !**/*.svg
  • templates/integrations/resend/resend.svg is excluded by !**/*.svg
  • templates/integrations/rippling/rippling.svg is excluded by !**/*.svg
  • templates/integrations/salesflare/salesflare.svg is excluded by !**/*.svg
  • templates/integrations/salesforce/salesforce.svg is excluded by !**/*.svg
  • templates/integrations/sap/sap.svg is excluded by !**/*.svg
  • templates/integrations/segment/segment.svg is excluded by !**/*.svg
  • templates/integrations/sendcloud/sendcloud.svg is excluded by !**/*.svg
  • templates/integrations/sendgrid/sendgrid.svg is excluded by !**/*.svg
  • templates/integrations/sentry/sentry.svg is excluded by !**/*.svg
  • templates/integrations/serpapi/serpapi.svg is excluded by !**/*.svg
  • templates/integrations/servicenow/servicenow.svg is excluded by !**/*.svg
  • templates/integrations/sevdesk/sevdesk.svg is excluded by !**/*.svg
  • templates/integrations/sharepoint/sharepoint.svg is excluded by !**/*.svg
  • templates/integrations/sheets/sheets.svg is excluded by !**/*.svg
  • templates/integrations/shopify/shopify.svg is excluded by !**/*.svg
  • templates/integrations/shopware/shopware.svg is excluded by !**/*.svg
  • templates/integrations/shortcut/shortcut.svg is excluded by !**/*.svg
  • templates/integrations/skribble/skribble.svg is excluded by !**/*.svg
  • templates/integrations/slack/slack.svg is excluded by !**/*.svg
  • templates/integrations/snowflake/snowflake.svg is excluded by !**/*.svg
  • templates/integrations/snyk/snyk.svg is excluded by !**/*.svg
  • templates/integrations/sprites/sprites.svg is excluded by !**/*.svg
  • templates/integrations/square/square.svg is excluded by !**/*.svg
  • templates/integrations/stability-ai/stability-ai.svg is excluded by !**/*.svg
  • templates/integrations/stackit/stackit.svg is excluded by !**/*.svg
  • templates/integrations/stripe/stripe.svg is excluded by !**/*.svg
  • templates/integrations/supabase/supabase.svg is excluded by !**/*.svg
  • templates/integrations/surveymonkey/surveymonkey.svg is excluded by !**/*.svg
  • templates/integrations/tally/tally.svg is excluded by !**/*.svg
  • templates/integrations/tavily/tavily.svg is excluded by !**/*.svg
  • templates/integrations/teams/teams.svg is excluded by !**/*.svg
  • templates/integrations/telegram/telegram.svg is excluded by !**/*.svg
  • templates/integrations/todoist/todoist.svg is excluded by !**/*.svg
  • templates/integrations/together-ai/together-ai.svg is excluded by !**/*.svg
  • templates/integrations/trello/trello.svg is excluded by !**/*.svg
  • templates/integrations/trusted-shops/trusted-shops.svg is excluded by !**/*.svg
  • templates/integrations/twilio/twilio.svg is excluded by !**/*.svg
  • templates/integrations/typeform/typeform.svg is excluded by !**/*.svg
  • templates/integrations/unstructured/unstructured.svg is excluded by !**/*.svg
  • templates/integrations/unzer/unzer.svg is excluded by !**/*.svg
  • templates/integrations/vercel/vercel.svg is excluded by !**/*.svg
  • templates/integrations/voyage-ai/voyage-ai.svg is excluded by !**/*.svg
  • templates/integrations/weaviate/weaviate.svg is excluded by !**/*.svg
  • templates/integrations/webex/webex.svg is excluded by !**/*.svg
  • templates/integrations/whatsapp/whatsapp.svg is excluded by !**/*.svg
  • templates/integrations/wix/wix.svg is excluded by !**/*.svg
  • templates/integrations/woocommerce/woocommerce.svg is excluded by !**/*.svg
  • templates/integrations/workable/workable.svg is excluded by !**/*.svg
  • templates/integrations/xentral/xentral.svg is excluded by !**/*.svg
  • templates/integrations/xero/xero.svg is excluded by !**/*.svg
  • templates/integrations/zendesk/zendesk.svg is excluded by !**/*.svg
  • templates/integrations/zoho-crm/zoho-crm.svg is excluded by !**/*.svg
  • templates/integrations/zoom/zoom.svg is excluded by !**/*.svg
📒 Files selected for processing (757)
  • .github/actions/setup-deno/action.yml
  • .gitignore
  • cli/README.md
  • cli/commands/init/catalog.ts
  • cli/commands/init/handler.ts
  • cli/commands/init/init.integration.test.ts
  • cli/commands/init/types.ts
  • cli/commands/install/registry.ts
  • cli/encrypted-token-store-template.test.ts
  • cli/mcp/tools/catalog-tools.ts
  • cli/shared/project-creation.test.ts
  • cli/shared/project-creation.ts
  • cli/token-store-template.test.ts
  • cli/utils/env-prompt.ts
  • deno.json
  • scripts/build/generate-integrations-module.ts
  • scripts/build/generate-templates-manifest.ts
  • scripts/build/npm-package-metadata.test.ts
  • scripts/lint/audit-core-deps.test.ts
  • scripts/lint/audit-core-deps.ts
  • scripts/lint/audit-cwd-relative-test-reads.ts
  • scripts/lint/ban-test-only.ts
  • scripts/lint/ban-zod-imports.test.ts
  • scripts/lint/ban-zod-imports.ts
  • scripts/lint/check-sanitizer-baseline.ts
  • scripts/lint/check-skipped-tests-baseline.ts
  • scripts/lint/check-test-typecheck-baseline.ts
  • scripts/lint/find-duplicate-functions.ts
  • scripts/test/coverage-ci.ts
  • scripts/test/npm-install-smoke.sh
  • socket.yml
  • src/integrations/_data.test.ts
  • src/oauth/providers/atlassian.test.ts
  • src/oauth/providers/common.test.ts
  • src/oauth/providers/google.test.ts
  • src/oauth/providers/microsoft.test.ts
  • src/release-assets/scaffolded-project-build.test.ts
  • templates/ai-rules/agents.md
  • templates/ai-rules/claude-code.md
  • templates/ai-rules/copilot.md
  • templates/ai-rules/cursor.md
  • templates/ai-rules/skill.md
  • templates/ai-rules/windsurf.md
  • templates/feature-loader.ts
  • templates/features/ai/feature.json
  • templates/features/ai/files/agents/assistant.ts
  • templates/features/ai/files/app/api/ag-ui/route.ts
  • templates/features/ai/files/app/chat/page.tsx
  • templates/features/ai/files/prompts/assistant.ts
  • templates/features/ai/files/tools/get-weather.ts
  • templates/features/auth/feature.json
  • templates/features/auth/files/app/api/auth/login/route.ts
  • templates/features/auth/files/app/api/auth/logout/route.ts
  • templates/features/auth/files/app/api/auth/me/route.ts
  • templates/features/auth/files/app/api/auth/signup/route.ts
  • templates/features/auth/files/app/dashboard/page.tsx
  • templates/features/auth/files/app/login/page.tsx
  • templates/features/auth/files/app/signup/page.tsx
  • templates/features/auth/files/lib/auth.ts
  • templates/features/auth/files/lib/db.ts
  • templates/features/auth/files/lib/jwt.ts
  • templates/features/auth/jwt.test.ts
  • templates/features/blob/feature.json
  • templates/features/blob/files/app/api/upload/[id]/route.ts
  • templates/features/blob/files/app/api/upload/route.ts
  • templates/features/blob/files/app/upload/page.tsx
  • templates/features/blob/files/lib/storage.ts
  • templates/features/mdx/feature.json
  • templates/features/mdx/files/app/docs/core-concepts/page.mdx
  • templates/features/mdx/files/app/docs/getting-started/page.mdx
  • templates/features/mdx/files/app/docs/page.mdx
  • templates/features/redis/feature.json
  • templates/features/redis/files/app/api/tasks/[id]/route.ts
  • templates/features/redis/files/app/api/tasks/route.ts
  • templates/features/redis/files/lib/redis.ts
  • templates/features/workflows/feature.json
  • templates/features/workflows/files/app/api/workflows/start/route.ts
  • templates/features/workflows/files/app/api/workflows/status/route.ts
  • templates/features/workflows/files/workflows/data-processing.ts
  • templates/features/workflows/files/workflows/index.ts
  • templates/files/agentic-workflow/README.md
  • templates/files/agentic-workflow/agents/researcher.ts
  • templates/files/agentic-workflow/agents/writer.ts
  • templates/files/agentic-workflow/app/api/workflows/[workflowId]/start/route.ts
  • templates/files/agentic-workflow/app/api/workflows/runs/[id]/approvals/[approvalId]/route.ts
  • templates/files/agentic-workflow/app/api/workflows/runs/[id]/route.ts
  • templates/files/agentic-workflow/app/api/workflows/runs/route.ts
  • templates/files/agentic-workflow/app/api/workflows/sample-runs.ts
  • templates/files/agentic-workflow/app/layout.tsx
  • templates/files/agentic-workflow/app/page.tsx
  • templates/files/agentic-workflow/app/workflows/[id]/page.tsx
  • templates/files/agentic-workflow/globals.css
  • templates/files/agentic-workflow/globals.d.ts
  • templates/files/agentic-workflow/tsconfig.json
  • templates/files/agentic-workflow/workflows/content-pipeline.ts
  • templates/files/ai-agent/README.md
  • templates/files/ai-agent/agents/assistant.ts
  • templates/files/ai-agent/app/api/ag-ui/route.ts
  • templates/files/ai-agent/app/layout.tsx
  • templates/files/ai-agent/app/markdown-renderer.tsx
  • templates/files/ai-agent/app/page.tsx
  • templates/files/ai-agent/evals/assistant.eval.ts
  • templates/files/ai-agent/globals.css
  • templates/files/ai-agent/globals.d.ts
  • templates/files/ai-agent/tools/calculator.ts
  • templates/files/ai-agent/tsconfig.json
  • templates/files/coding-agent/README.md
  • templates/files/coding-agent/agents/coder.ts
  • templates/files/coding-agent/app/api/ag-ui/route.ts
  • templates/files/coding-agent/app/layout.tsx
  • templates/files/coding-agent/app/markdown-renderer.tsx
  • templates/files/coding-agent/app/page.tsx
  • templates/files/coding-agent/globals.css
  • templates/files/coding-agent/globals.d.ts
  • templates/files/coding-agent/tools/edit-file.ts
  • templates/files/coding-agent/tools/list-files.ts
  • templates/files/coding-agent/tools/read-file.ts
  • templates/files/coding-agent/tsconfig.json
  • templates/files/docs-agent/README.md
  • templates/files/docs-agent/agents/rag.ts
  • templates/files/docs-agent/app/api/ag-ui/route.ts
  • templates/files/docs-agent/app/api/ingest/route.ts
  • templates/files/docs-agent/app/api/uploads/route.ts
  • templates/files/docs-agent/app/layout.tsx
  • templates/files/docs-agent/app/markdown-renderer.tsx
  • templates/files/docs-agent/app/page.tsx
  • templates/files/docs-agent/app/uploads/page.tsx
  • templates/files/docs-agent/content/architecture.md
  • templates/files/docs-agent/content/getting-started.md
  • templates/files/docs-agent/globals.css
  • templates/files/docs-agent/globals.d.ts
  • templates/files/docs-agent/store.ts
  • templates/files/docs-agent/tsconfig.json
  • templates/files/minimal/README.md
  • templates/files/minimal/app/about/page.mdx
  • templates/files/minimal/app/layout.tsx
  • templates/files/minimal/app/page.tsx
  • templates/files/minimal/tsconfig.json
  • templates/files/multi-agent-system/README.md
  • templates/files/multi-agent-system/agents/orchestrator.ts
  • templates/files/multi-agent-system/agents/researcher.ts
  • templates/files/multi-agent-system/agents/writer.ts
  • templates/files/multi-agent-system/app/api/ag-ui/route.ts
  • templates/files/multi-agent-system/app/layout.tsx
  • templates/files/multi-agent-system/app/markdown-renderer.tsx
  • templates/files/multi-agent-system/app/page.tsx
  • templates/files/multi-agent-system/globals.css
  • templates/files/multi-agent-system/globals.d.ts
  • templates/files/multi-agent-system/tools/web-search.ts
  • templates/files/multi-agent-system/tsconfig.json
  • templates/files/saas-starter/README.md
  • templates/files/saas-starter/agents/assistant.ts
  • templates/files/saas-starter/app/api/ag-ui/route.ts
  • templates/files/saas-starter/app/dashboard/page.tsx
  • templates/files/saas-starter/app/layout.tsx
  • templates/files/saas-starter/app/login/page.tsx
  • templates/files/saas-starter/app/markdown-renderer.tsx
  • templates/files/saas-starter/app/page.tsx
  • templates/files/saas-starter/globals.css
  • templates/files/saas-starter/globals.d.ts
  • templates/files/saas-starter/tools/search.ts
  • templates/files/saas-starter/tsconfig.json
  • templates/index.test.ts
  • templates/index.ts
  • templates/integration-loader-helpers.test.ts
  • templates/integration-loader-helpers.ts
  • templates/integration-loader.test.ts
  • templates/integration-loader.ts
  • templates/integrations/_base/connector.json
  • templates/integrations/_base/files/SETUP.md
  • templates/integrations/_base/files/app/api/integrations/status/route.ts
  • templates/integrations/_base/files/app/api/integrations/token-storage/route.ts
  • templates/integrations/_base/files/app/components/ServiceConnections.tsx
  • templates/integrations/_base/files/app/page.tsx
  • templates/integrations/_base/files/app/setup/page-helpers.tsx
  • templates/integrations/_base/files/app/setup/page.tsx
  • templates/integrations/_base/files/lib/encrypted-token-store.ts
  • templates/integrations/_base/files/lib/oauth.ts
  • templates/integrations/_base/files/lib/token-store-examples.ts
  • templates/integrations/_base/files/lib/token-store.ts
  • templates/integrations/_base/files/lib/user-id.ts
  • templates/integrations/activecampaign/connector.json
  • templates/integrations/adyen/connector.json
  • templates/integrations/airtable/connector.json
  • templates/integrations/airtable/files/app/api/auth/airtable/callback/route.ts
  • templates/integrations/airtable/files/app/api/auth/airtable/route.ts
  • templates/integrations/airtable/files/lib/airtable-client.ts
  • templates/integrations/airtable/files/tools/create-field.ts
  • templates/integrations/airtable/files/tools/create-record.ts
  • templates/integrations/airtable/files/tools/create-records.ts
  • templates/integrations/airtable/files/tools/create-table.ts
  • templates/integrations/airtable/files/tools/delete-record.ts
  • templates/integrations/airtable/files/tools/get-base.ts
  • templates/integrations/airtable/files/tools/get-record.ts
  • templates/integrations/airtable/files/tools/list-bases.ts
  • templates/integrations/airtable/files/tools/list-records.ts
  • templates/integrations/airtable/files/tools/update-record.ts
  • templates/integrations/airtable/files/tools/update-table.ts
  • templates/integrations/algolia/connector.json
  • templates/integrations/alphavantage/connector.json
  • templates/integrations/amplitude/connector.json
  • templates/integrations/anthropic/README.md
  • templates/integrations/anthropic/connector.json
  • templates/integrations/anthropic/files/_env.example
  • templates/integrations/anthropic/files/lib/anthropic-admin-client.ts
  • templates/integrations/anthropic/files/tools/get-organization.ts
  • templates/integrations/anthropic/files/tools/get-usage.ts
  • templates/integrations/anthropic/files/tools/list-api-keys.ts
  • templates/integrations/anthropic/files/tools/list-members.ts
  • templates/integrations/anthropic/files/tools/list-workspaces.ts
  • templates/integrations/apify/connector.json
  • templates/integrations/apollo/connector.json
  • templates/integrations/asana/connector.json
  • templates/integrations/asana/files/_env.example
  • templates/integrations/asana/files/app/api/auth/asana/callback/route.ts
  • templates/integrations/asana/files/app/api/auth/asana/route.ts
  • templates/integrations/asana/files/lib/asana-client.ts
  • templates/integrations/asana/files/tools/add-task-comment.ts
  • templates/integrations/asana/files/tools/create-task.ts
  • templates/integrations/asana/files/tools/get-task.ts
  • templates/integrations/asana/files/tools/list-projects.ts
  • templates/integrations/asana/files/tools/list-task-comments.ts
  • templates/integrations/asana/files/tools/list-tasks.ts
  • templates/integrations/asana/files/tools/list-teams.ts
  • templates/integrations/asana/files/tools/list-users.ts
  • templates/integrations/asana/files/tools/list-workspaces.ts
  • templates/integrations/asana/files/tools/update-task.ts
  • templates/integrations/ashby/connector.json
  • templates/integrations/assemblyai/connector.json
  • templates/integrations/attio/connector.json
  • templates/integrations/aws/connector.json
  • templates/integrations/aws/files/_env.example
  • templates/integrations/aws/files/lib/aws-client.ts
  • templates/integrations/aws/files/tools/get-s3-object.ts
  • templates/integrations/aws/files/tools/list-ec2-instances.ts
  • templates/integrations/aws/files/tools/list-lambda-functions.ts
  • templates/integrations/aws/files/tools/list-s3-buckets.ts
  • templates/integrations/aws/files/tools/list-s3-objects.ts
  • templates/integrations/axiom/connector.json
  • templates/integrations/azure-blob-storage/connector.json
  • templates/integrations/azure-document-intelligence/connector.json
  • templates/integrations/azure/connector.json
  • templates/integrations/bamboohr/connector.json
  • templates/integrations/basecamp/connector.json
  • templates/integrations/betterstack/connector.json
  • templates/integrations/bigcommerce/connector.json
  • templates/integrations/billbee/connector.json
  • templates/integrations/bitbucket/connector.json
  • templates/integrations/bitbucket/files/_env.example
  • templates/integrations/bitbucket/files/app/api/auth/bitbucket/callback/route.ts
  • templates/integrations/bitbucket/files/app/api/auth/bitbucket/route.ts
  • templates/integrations/bitbucket/files/lib/bitbucket-client.ts
  • templates/integrations/bitbucket/files/tools/create-pull-request.ts
  • templates/integrations/bitbucket/files/tools/list-issues.ts
  • templates/integrations/bitbucket/files/tools/list-pull-requests.ts
  • templates/integrations/bitbucket/files/tools/list-repositories.ts
  • templates/integrations/box/connector.json
  • templates/integrations/brave-search/connector.json
  • templates/integrations/brevo/connector.json
  • templates/integrations/browserbase/connector.json
  • templates/integrations/buildkite/connector.json
  • templates/integrations/cal-com/connector.json
  • templates/integrations/calendar/connector.json
  • templates/integrations/calendar/files/_env.example
  • templates/integrations/calendar/files/app/api/auth/calendar/callback/route.ts
  • templates/integrations/calendar/files/app/api/auth/calendar/route.ts
  • templates/integrations/calendar/files/lib/calendar-client.ts
  • templates/integrations/calendar/files/tools/create-event.ts
  • templates/integrations/calendar/files/tools/delete-event.ts
  • templates/integrations/calendar/files/tools/find-free-time.ts
  • templates/integrations/calendar/files/tools/list-events.ts
  • templates/integrations/calendar/files/tools/update-event.ts
  • templates/integrations/calendly/connector.json
  • templates/integrations/chargebee/connector.json
  • templates/integrations/checkly/connector.json
  • templates/integrations/circleci/connector.json
  • templates/integrations/cleverreach/connector.json
  • templates/integrations/clickhouse/connector.json
  • templates/integrations/clickup/connector.json
  • templates/integrations/close/connector.json
  • templates/integrations/cloudflare/connector.json
  • templates/integrations/coda/connector.json
  • templates/integrations/cohere/connector.json
  • templates/integrations/confluence/README.md
  • templates/integrations/confluence/connector.json
  • templates/integrations/confluence/files/_env.example
  • templates/integrations/confluence/files/app/api/auth/confluence/callback/route.ts
  • templates/integrations/confluence/files/app/api/auth/confluence/route.ts
  • templates/integrations/confluence/files/lib/confluence-client.ts
  • templates/integrations/confluence/files/tools/create-page.ts
  • templates/integrations/confluence/files/tools/get-page.ts
  • templates/integrations/confluence/files/tools/list-spaces.ts
  • templates/integrations/confluence/files/tools/search-content.ts
  • templates/integrations/confluence/files/tools/update-page.ts
  • templates/integrations/customer-io/connector.json
  • templates/integrations/databricks/connector.json
  • templates/integrations/datadog/connector.json
  • templates/integrations/datev/connector.json
  • templates/integrations/daytona/connector.json
  • templates/integrations/deel/connector.json
  • templates/integrations/deepgram/connector.json
  • templates/integrations/dialpad/connector.json
  • templates/integrations/digitalocean/connector.json
  • templates/integrations/discord/connector.json
  • templates/integrations/docs-google/connector.json
  • templates/integrations/docs-google/files/_env.example
  • templates/integrations/docs-google/files/app/api/auth/docs-google/callback/route.ts
  • templates/integrations/docs-google/files/app/api/auth/docs-google/route.ts
  • templates/integrations/docs-google/files/lib/docs-client.ts
  • templates/integrations/docs-google/files/lib/docs-google-oauth.ts
  • templates/integrations/docs-google/files/tools/create-document.ts
  • templates/integrations/docs-google/files/tools/get-document.ts
  • templates/integrations/docs-google/files/tools/list-documents.ts
  • templates/integrations/docs-google/files/tools/search-documents.ts
  • templates/integrations/docs-google/files/tools/update-document.ts
  • templates/integrations/docusign/connector.json
  • templates/integrations/drive/connector.json
  • templates/integrations/drive/files/_env.example
  • templates/integrations/drive/files/app/api/auth/drive/callback/route.ts
  • templates/integrations/drive/files/app/api/auth/drive/route.ts
  • templates/integrations/drive/files/lib/drive-client.ts
  • templates/integrations/drive/files/lib/drive-oauth.ts
  • templates/integrations/drive/files/tools/create-folder.ts
  • templates/integrations/drive/files/tools/get-file.ts
  • templates/integrations/drive/files/tools/list-files.ts
  • templates/integrations/drive/files/tools/search-files.ts
  • templates/integrations/drive/files/tools/upload-file.ts
  • templates/integrations/e2b/connector.json
  • templates/integrations/elevenlabs/connector.json
  • templates/integrations/exa/connector.json
  • templates/integrations/factorial/connector.json
  • templates/integrations/fal/connector.json
  • templates/integrations/fathom/connector.json
  • templates/integrations/figma/INTEGRATION_SUMMARY.md
  • templates/integrations/figma/README.md
  • templates/integrations/figma/connector.json
  • templates/integrations/figma/files/_env.example
  • templates/integrations/figma/files/app/api/auth/figma/callback/route.ts
  • templates/integrations/figma/files/app/api/auth/figma/route.ts
  • templates/integrations/figma/files/lib/figma-client.ts
  • templates/integrations/figma/files/lib/types.ts
  • templates/integrations/figma/files/tools/get-comments.ts
  • templates/integrations/figma/files/tools/get-file.ts
  • templates/integrations/figma/files/tools/post-comment.ts
  • templates/integrations/finapi/connector.json
  • templates/integrations/firecrawl/connector.json
  • templates/integrations/fireflies/connector.json
  • templates/integrations/fireworks-ai/connector.json
  • templates/integrations/fly-io/connector.json
  • templates/integrations/folk/connector.json
  • templates/integrations/freshdesk/connector.json
  • templates/integrations/front/connector.json
  • templates/integrations/gcp/connector.json
  • templates/integrations/gemini/connector.json
  • templates/integrations/github/connector.json
  • templates/integrations/github/files/app/api/auth/github/callback/route.ts
  • templates/integrations/github/files/app/api/auth/github/route.ts
  • templates/integrations/github/files/lib/github-client.ts
  • templates/integrations/github/files/tools/add-issue-comment.ts
  • templates/integrations/github/files/tools/create-issue.ts
  • templates/integrations/github/files/tools/create-pr.ts
  • templates/integrations/github/files/tools/get-current-user.ts
  • templates/integrations/github/files/tools/get-issue.ts
  • templates/integrations/github/files/tools/get-pr-diff.ts
  • templates/integrations/github/files/tools/get-pr.ts
  • templates/integrations/github/files/tools/get-repo.ts
  • templates/integrations/github/files/tools/get-user.ts
  • templates/integrations/github/files/tools/list-commits.ts
  • templates/integrations/github/files/tools/list-issues.ts
  • templates/integrations/github/files/tools/list-prs.ts
  • templates/integrations/github/files/tools/list-repos.ts
  • templates/integrations/github/files/tools/merge-pr.ts
  • templates/integrations/github/files/tools/update-issue.ts
  • templates/integrations/gitlab/connector.json
  • templates/integrations/gitlab/files/_env.example
  • templates/integrations/gitlab/files/app/api/auth/gitlab/callback/route.ts
  • templates/integrations/gitlab/files/app/api/auth/gitlab/route.ts
  • templates/integrations/gitlab/files/lib/gitlab-client.ts
  • templates/integrations/gitlab/files/tools/add-issue-comment.ts
  • templates/integrations/gitlab/files/tools/add-merge-request-comment.ts
  • templates/integrations/gitlab/files/tools/create-issue.ts
  • templates/integrations/gitlab/files/tools/get-issue.ts
  • templates/integrations/gitlab/files/tools/get-merge-request.ts
  • templates/integrations/gitlab/files/tools/get-project.ts
  • templates/integrations/gitlab/files/tools/list-merge-requests.ts
  • templates/integrations/gitlab/files/tools/list-projects.ts
  • templates/integrations/gitlab/files/tools/search-issues.ts
  • templates/integrations/gitlab/files/tools/update-issue.ts
  • templates/integrations/gmail/connector.json
  • templates/integrations/gmail/files/_env.example
  • templates/integrations/gmail/files/app/api/auth/gmail/callback/route.ts
  • templates/integrations/gmail/files/app/api/auth/gmail/route.ts
  • templates/integrations/gmail/files/lib/context.ts
  • templates/integrations/gmail/files/lib/gmail-client.ts
  • templates/integrations/gmail/files/tools/apply-labels.ts
  • templates/integrations/gmail/files/tools/archive-email.ts
  • templates/integrations/gmail/files/tools/batch-delete-emails.ts
  • templates/integrations/gmail/files/tools/batch-modify-emails.ts
  • templates/integrations/gmail/files/tools/create-draft.ts
  • templates/integrations/gmail/files/tools/create-label.ts
  • templates/integrations/gmail/files/tools/delete-draft.ts
  • templates/integrations/gmail/files/tools/delete-email.ts
  • templates/integrations/gmail/files/tools/delete-label.ts
  • templates/integrations/gmail/files/tools/delete-thread.ts
  • templates/integrations/gmail/files/tools/get-attachment.ts
  • templates/integrations/gmail/files/tools/get-draft.ts
  • templates/integrations/gmail/files/tools/get-email.ts
  • templates/integrations/gmail/files/tools/get-label.ts
  • templates/integrations/gmail/files/tools/get-profile.ts
  • templates/integrations/gmail/files/tools/get-thread.ts
  • templates/integrations/gmail/files/tools/list-drafts.ts
  • templates/integrations/gmail/files/tools/list-emails.ts
  • templates/integrations/gmail/files/tools/list-history.ts
  • templates/integrations/gmail/files/tools/list-labels.ts
  • templates/integrations/gmail/files/tools/list-threads.ts
  • templates/integrations/gmail/files/tools/mark-email-read.ts
  • templates/integrations/gmail/files/tools/modify-email-labels.ts
  • templates/integrations/gmail/files/tools/modify-thread-labels.ts
  • templates/integrations/gmail/files/tools/search-emails.ts
  • templates/integrations/gmail/files/tools/send-draft.ts
  • templates/integrations/gmail/files/tools/send-email.ts
  • templates/integrations/gmail/files/tools/trash-email.ts
  • templates/integrations/gmail/files/tools/trash-thread.ts
  • templates/integrations/gmail/files/tools/untrash-email.ts
  • templates/integrations/gmail/files/tools/untrash-thread.ts
  • templates/integrations/gmail/files/tools/update-draft.ts
  • templates/integrations/gmail/files/tools/update-label.ts
  • templates/integrations/gocardless/connector.json
  • templates/integrations/gong/connector.json
  • templates/integrations/google-analytics/connector.json
  • templates/integrations/google-bigquery/connector.json
  • templates/integrations/google-chat/connector.json
  • templates/integrations/google-cloud-storage/connector.json
  • templates/integrations/google-contacts/connector.json
  • templates/integrations/google-forms/connector.json
  • templates/integrations/gorgias/connector.json
  • templates/integrations/grafana-cloud/connector.json
  • templates/integrations/greenhouse/connector.json
  • templates/integrations/groq/connector.json
  • templates/integrations/guru/connector.json
  • templates/integrations/gusto/connector.json
  • templates/integrations/harvest/connector.json
  • templates/integrations/help-scout/connector.json
  • templates/integrations/heroku/connector.json
  • templates/integrations/hetzner/connector.json
  • templates/integrations/hubspot/connector.json
  • templates/integrations/huggingface/connector.json
  • templates/integrations/intercom/connector.json
  • templates/integrations/ionos/connector.json
  • templates/integrations/jira/connector.json
  • templates/integrations/jira/files/app/api/auth/jira/callback/route.ts
  • templates/integrations/jira/files/app/api/auth/jira/route.ts
  • templates/integrations/jira/files/lib/jira-client.ts
  • templates/integrations/jira/files/tools/add-comment.ts
  • templates/integrations/jira/files/tools/create-issue.ts
  • templates/integrations/jira/files/tools/get-issue.ts
  • templates/integrations/jira/files/tools/get-project.ts
  • templates/integrations/jira/files/tools/get-transitions.ts
  • templates/integrations/jira/files/tools/list-comments.ts
  • templates/integrations/jira/files/tools/list-projects.ts
  • templates/integrations/jira/files/tools/search-issues.ts
  • templates/integrations/jira/files/tools/update-issue.ts
  • templates/integrations/jotform/connector.json
  • templates/integrations/klarna/connector.json
  • templates/integrations/klaviyo/connector.json
  • templates/integrations/langfuse/connector.json
  • templates/integrations/langsmith/connector.json
  • templates/integrations/launchdarkly/connector.json
  • templates/integrations/lever/connector.json
  • templates/integrations/lexoffice/connector.json
  • templates/integrations/linear/connector.json
  • templates/integrations/linear/files/_env.example
  • templates/integrations/linear/files/app/api/auth/linear/callback/route.ts
  • templates/integrations/linear/files/app/api/auth/linear/route.ts
  • templates/integrations/linear/files/lib/linear-client.ts
  • templates/integrations/linear/files/tools/add-comment.ts
  • templates/integrations/linear/files/tools/create-issue.ts
  • templates/integrations/linear/files/tools/get-issue.ts
  • templates/integrations/linear/files/tools/list-projects.ts
  • templates/integrations/linear/files/tools/list-teams.ts
  • templates/integrations/linear/files/tools/list-users.ts
  • templates/integrations/linear/files/tools/list-workflow-states.ts
  • templates/integrations/linear/files/tools/search-issues.ts
  • templates/integrations/linear/files/tools/update-issue.ts
  • templates/integrations/mailchimp/connector.json
  • templates/integrations/metabase/connector.json
  • templates/integrations/mindee/connector.json
  • templates/integrations/mistral/connector.json
  • templates/integrations/mixpanel/connector.json
  • templates/integrations/mixpanel/files/_env.example
  • templates/integrations/mixpanel/files/lib/mixpanel-client.ts
  • templates/integrations/mixpanel/files/tools/get-funnel.ts
  • templates/integrations/mixpanel/files/tools/get-retention.ts
  • templates/integrations/mixpanel/files/tools/list-cohorts.ts
  • templates/integrations/mixpanel/files/tools/query-events.ts
  • templates/integrations/mixpanel/files/tools/track-event.ts
  • templates/integrations/mollie/connector.json
  • templates/integrations/monday/connector.json
  • templates/integrations/mongodb-atlas/connector.json
  • templates/integrations/moss/connector.json
  • templates/integrations/neo4j/connector.json
  • templates/integrations/neon/connector.json
  • templates/integrations/neon/files/_env.example
  • templates/integrations/neon/files/app/api/auth/neon/route.ts
  • templates/integrations/neon/files/lib/neon-client.ts
  • templates/integrations/neon/files/tools/describe-table.ts
  • templates/integrations/neon/files/tools/list-branches.ts
  • templates/integrations/neon/files/tools/list-projects.ts
  • templates/integrations/neon/files/tools/list-tables.ts
  • templates/integrations/neon/files/tools/query-database.ts
  • templates/integrations/netlify/connector.json
  • templates/integrations/new-relic/connector.json
  • templates/integrations/north-data/connector.json
  • templates/integrations/notion/connector.json
  • templates/integrations/notion/files/_env.example
  • templates/integrations/notion/files/app/api/auth/notion/callback/route.ts
  • templates/integrations/notion/files/app/api/auth/notion/route.ts
  • templates/integrations/notion/files/lib/notion-client.ts
  • templates/integrations/notion/files/tools/append-blocks.ts
  • templates/integrations/notion/files/tools/create-page.ts
  • templates/integrations/notion/files/tools/get-database.ts
  • templates/integrations/notion/files/tools/get-page.ts
  • templates/integrations/notion/files/tools/query-database.ts
  • templates/integrations/notion/files/tools/read-page.ts
  • templates/integrations/notion/files/tools/search-notion.ts
  • templates/integrations/notion/files/tools/update-page.ts
  • templates/integrations/onedrive/connector.json
  • templates/integrations/onedrive/files/_env.example
  • templates/integrations/onedrive/files/app/api/auth/onedrive/callback/route.ts
  • templates/integrations/onedrive/files/app/api/auth/onedrive/route.ts
  • templates/integrations/onedrive/files/lib/onedrive-client.ts
  • templates/integrations/onedrive/files/tools/download-file.ts
  • templates/integrations/onedrive/files/tools/list-files.ts
  • templates/integrations/onedrive/files/tools/search-files.ts
  • templates/integrations/onedrive/files/tools/upload-file.ts
  • templates/integrations/openai/connector.json
  • templates/integrations/openrouter/connector.json
  • templates/integrations/outlook/README.md
  • templates/integrations/outlook/connector.json
  • templates/integrations/outlook/files/_env.example
  • templates/integrations/outlook/files/app/api/auth/outlook/callback/route.ts
  • templates/integrations/outlook/files/app/api/auth/outlook/route.ts
  • templates/integrations/outlook/files/lib/outlook-client.ts
  • templates/integrations/outlook/files/tools/create-draft.ts
  • templates/integrations/outlook/files/tools/get-email.ts
  • templates/integrations/outlook/files/tools/get-thread.ts
  • templates/integrations/outlook/files/tools/list-emails.ts
  • templates/integrations/outlook/files/tools/list-folders.ts
  • templates/integrations/outlook/files/tools/list-threads.ts
  • templates/integrations/outlook/files/tools/search-emails.ts
  • templates/integrations/outlook/files/tools/send-email.ts
  • templates/integrations/paddle/connector.json
  • templates/integrations/pagerduty/connector.json
  • templates/integrations/pandadoc/connector.json
  • templates/integrations/paypal/connector.json
  • templates/integrations/perplexity/connector.json
  • templates/integrations/persona/connector.json
  • templates/integrations/personio/connector.json
  • templates/integrations/pinecone/connector.json
  • templates/integrations/pipedrive/connector.json
  • templates/integrations/planetscale/connector.json
  • templates/integrations/polygon/connector.json
  • templates/integrations/portkey/connector.json
  • templates/integrations/posthog/connector.json
  • templates/integrations/posthog/files/_env.example
  • templates/integrations/posthog/files/lib/posthog-client.ts
  • templates/integrations/posthog/files/tools/capture-event.ts
  • templates/integrations/posthog/files/tools/get-trends.ts
  • templates/integrations/posthog/files/tools/list-feature-flags.ts
  • templates/integrations/posthog/files/tools/list-persons.ts
  • templates/integrations/power-bi/connector.json
  • templates/integrations/productboard/connector.json
  • templates/integrations/qdrant/connector.json
  • templates/integrations/qonto/connector.json
  • templates/integrations/quickbooks/connector.json
  • templates/integrations/railway/connector.json
  • templates/integrations/ramp/connector.json
  • templates/integrations/razorpay/connector.json
  • templates/integrations/redis-cloud/connector.json
  • templates/integrations/render/connector.json
  • templates/integrations/replicate/connector.json
  • templates/integrations/resend/connector.json
  • templates/integrations/rippling/connector.json
  • templates/integrations/salesflare/connector.json
  • templates/integrations/salesforce/connector.json
  • templates/integrations/salesforce/files/app/api/auth/salesforce/callback/route.ts
  • templates/integrations/salesforce/files/app/api/auth/salesforce/route.ts
  • templates/integrations/salesforce/files/lib/salesforce-client.ts
  • templates/integrations/salesforce/files/tools/create-lead.ts
  • templates/integrations/salesforce/files/tools/get-account.ts
  • templates/integrations/salesforce/files/tools/list-accounts.ts
  • templates/integrations/salesforce/files/tools/list-contacts.ts
  • templates/integrations/salesforce/files/tools/list-opportunities.ts
  • templates/integrations/sap/connector.json
  • templates/integrations/segment/connector.json
  • templates/integrations/sendcloud/connector.json
  • templates/integrations/sendgrid/connector.json
  • templates/integrations/sentry/connector.json
  • templates/integrations/sentry/files/_env.example
  • templates/integrations/sentry/files/lib/sentry-client.ts
  • templates/integrations/sentry/files/tools/get-issue.ts
  • templates/integrations/sentry/files/tools/list-issues.ts
  • templates/integrations/sentry/files/tools/list-projects.ts
  • templates/integrations/sentry/files/tools/resolve-issue.ts
  • templates/integrations/serpapi/connector.json
  • templates/integrations/servicenow/connector.json
  • templates/integrations/servicenow/files/_env.example
  • templates/integrations/servicenow/files/app/api/auth/servicenow/callback/route.ts
  • templates/integrations/servicenow/files/app/api/auth/servicenow/route.ts
  • templates/integrations/servicenow/files/lib/servicenow-client.ts
  • templates/integrations/servicenow/files/tools/create-incident.ts
  • templates/integrations/servicenow/files/tools/get-incident.ts
  • templates/integrations/servicenow/files/tools/list-incidents.ts
  • templates/integrations/servicenow/files/tools/search-knowledge.ts
  • templates/integrations/servicenow/files/tools/update-incident.ts
  • templates/integrations/sevdesk/connector.json
  • templates/integrations/sharepoint/connector.json
  • templates/integrations/sharepoint/files/app/api/auth/sharepoint/callback/route.ts
  • templates/integrations/sharepoint/files/app/api/auth/sharepoint/route.ts
  • templates/integrations/sharepoint/files/lib/sharepoint-client.ts
  • templates/integrations/sharepoint/files/tools/get-file.ts
  • templates/integrations/sharepoint/files/tools/get-site.ts
  • templates/integrations/sharepoint/files/tools/list-files.ts
  • templates/integrations/sharepoint/files/tools/list-sites.ts
  • templates/integrations/sharepoint/files/tools/upload-file.ts
  • templates/integrations/sheets/README.md
  • templates/integrations/sheets/connector.json
  • templates/integrations/sheets/files/_env.example
  • templates/integrations/sheets/files/app/api/auth/sheets/callback/route.ts
  • templates/integrations/sheets/files/app/api/auth/sheets/route.ts
  • templates/integrations/sheets/files/lib/sheets-client.ts
  • templates/integrations/sheets/files/tools/add-sheet.ts
  • templates/integrations/sheets/files/tools/append-rows.ts
  • templates/integrations/sheets/files/tools/batch-update.ts
  • templates/integrations/sheets/files/tools/clear-range.ts
  • templates/integrations/sheets/files/tools/copy-sheet.ts
  • templates/integrations/sheets/files/tools/create-chart.ts
  • templates/integrations/sheets/files/tools/create-spreadsheet.ts
  • templates/integrations/sheets/files/tools/delete-sheet.ts
  • templates/integrations/sheets/files/tools/delete-spreadsheet.ts
  • templates/integrations/sheets/files/tools/find-replace.ts
  • templates/integrations/sheets/files/tools/get-spreadsheet.ts
  • templates/integrations/sheets/files/tools/list-spreadsheets.ts
  • templates/integrations/sheets/files/tools/read-range.ts
  • templates/integrations/sheets/files/tools/rename-sheet.ts
  • templates/integrations/sheets/files/tools/set-data-validation.ts
  • templates/integrations/sheets/files/tools/write-range.ts
  • templates/integrations/shopify/connector.json
  • templates/integrations/shopify/files/_env.example
  • templates/integrations/shopify/files/app/api/auth/shopify/callback/route.ts
  • templates/integrations/shopify/files/app/api/auth/shopify/route.ts
  • templates/integrations/shopify/files/lib/shopify-client.ts
  • templates/integrations/shopify/files/tools/get-order.ts
  • templates/integrations/shopify/files/tools/get-product.ts
  • templates/integrations/shopify/files/tools/list-customers.ts
  • templates/integrations/shopify/files/tools/list-orders.ts
  • templates/integrations/shopify/files/tools/list-products.ts
  • templates/integrations/shopware/connector.json
  • templates/integrations/shortcut/connector.json
  • templates/integrations/skribble/connector.json
  • templates/integrations/slack/connector.json
  • templates/integrations/slack/files/app/api/auth/slack/callback/route.ts
  • templates/integrations/slack/files/app/api/auth/slack/route.ts
  • templates/integrations/slack/files/lib/slack-client.ts
  • templates/integrations/slack/files/tools/get-messages.ts
  • templates/integrations/slack/files/tools/list-channels.ts
  • templates/integrations/slack/files/tools/send-message.ts
  • templates/integrations/snowflake/connector.json
  • templates/integrations/snowflake/files/_env.example
  • templates/integrations/snowflake/files/lib/snowflake-client.ts
  • templates/integrations/snowflake/files/tools/describe-table.ts
  • templates/integrations/snowflake/files/tools/list-databases.ts
  • templates/integrations/snowflake/files/tools/list-schemas.ts
  • templates/integrations/snowflake/files/tools/list-tables.ts
  • templates/integrations/snowflake/files/tools/run-query.ts
  • templates/integrations/snyk/connector.json
  • templates/integrations/sprites/connector.json
  • templates/integrations/square/connector.json
  • templates/integrations/stability-ai/connector.json
  • templates/integrations/stackit/connector.json
  • templates/integrations/stripe/connector.json
  • templates/integrations/stripe/files/_env.example
  • templates/integrations/stripe/files/app/api/auth/stripe/route.ts
  • templates/integrations/stripe/files/lib/stripe-client.ts
  • templates/integrations/stripe/files/tools/get-balance.ts
  • templates/integrations/stripe/files/tools/get-customer.ts
  • templates/integrations/stripe/files/tools/list-customers.ts
  • templates/integrations/stripe/files/tools/list-payments.ts
  • templates/integrations/stripe/files/tools/list-subscriptions.ts
  • templates/integrations/supabase/connector.json
  • templates/integrations/supabase/files/_env.example
  • templates/integrations/supabase/files/app/api/auth/supabase/route.ts
  • templates/integrations/supabase/files/lib/supabase-client.ts
  • templates/integrations/supabase/files/tools/delete-row.ts
  • templates/integrations/supabase/files/tools/insert-row.ts
  • templates/integrations/supabase/files/tools/list-tables.ts
  • templates/integrations/supabase/files/tools/query-table.ts
  • templates/integrations/supabase/files/tools/update-row.ts
  • templates/integrations/surveymonkey/connector.json
  • templates/integrations/tally/connector.json
  • templates/integrations/tavily/connector.json
  • templates/integrations/teams/README.md
  • templates/integrations/teams/connector.json
  • templates/integrations/teams/files/app/api/auth/teams/callback/route.ts
  • templates/integrations/teams/files/app/api/auth/teams/route.ts
  • templates/integrations/teams/files/lib/teams-client.ts
  • templates/integrations/teams/files/tools/get-messages.ts
  • templates/integrations/teams/files/tools/list-channels.ts
  • templates/integrations/teams/files/tools/list-chats.ts
  • templates/integrations/teams/files/tools/list-teams.ts
  • templates/integrations/teams/files/tools/send-message.ts
  • templates/integrations/telegram/connector.json
  • templates/integrations/todoist/connector.json
  • templates/integrations/together-ai/connector.json
  • templates/integrations/trello/connector.json
  • templates/integrations/trello/files/_env.example
  • templates/integrations/trello/files/app/api/auth/trello/callback/route.ts
  • templates/integrations/trello/files/app/api/auth/trello/route.ts
  • templates/integrations/trello/files/lib/trello-client.ts
  • templates/integrations/trello/files/tools/create-card.ts
  • templates/integrations/trello/files/tools/get-card.ts
  • templates/integrations/trello/files/tools/list-boards.ts
  • templates/integrations/trello/files/tools/list-cards.ts
  • templates/integrations/trello/files/tools/update-card.ts
  • templates/integrations/trusted-shops/connector.json
  • templates/integrations/twilio/connector.json
  • templates/integrations/twilio/files/_env.example
  • templates/integrations/twilio/files/lib/twilio-client.ts
  • templates/integrations/twilio/files/tools/get-message.ts
  • templates/integrations/twilio/files/tools/list-calls.ts
  • templates/integrations/twilio/files/tools/list-messages.ts
  • templates/integrations/twilio/files/tools/send-sms.ts
  • templates/integrations/twilio/files/tools/send-whatsapp.ts
  • templates/integrations/typeform/connector.json
  • templates/integrations/unstructured/connector.json
  • templates/integrations/unzer/connector.json
  • templates/integrations/vercel/connector.json
  • templates/integrations/voyage-ai/connector.json
  • templates/integrations/weaviate/connector.json
  • templates/integrations/webex/connector.json
  • templates/integrations/whatsapp/connector.json
  • templates/integrations/wix/connector.json
  • templates/integrations/woocommerce/connector.json
  • templates/integrations/workable/connector.json
  • templates/integrations/xentral/connector.json
  • templates/integrations/xero/connector.json
  • templates/integrations/zendesk/connector.json
  • templates/integrations/zoho-crm/connector.json
  • templates/integrations/zoom/connector.json
  • templates/loader.ts
  • templates/manifest.json
  • templates/types.ts
  • tests/docs/guide-code-examples.test.ts
  • tests/docs/guide-content.test.ts
  • tests/docs/scaffold-trees.test.ts
  • tests/integration/templates/agentic-workflow-template.test.ts
  • tests/integration/templates/starter-templates-smoke.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands.

Three lint tools carried an explicit `cli/templates/` exclusion because the
directory sat under a scanned root. At the top level it no longer does, so
rewriting the string to `templates/` would have left code that reads as a
live guard while never firing.

- `audit-core-deps.ts` and `ban-zod-imports.ts` return early for anything
  outside `src/` and `cli/`, which now covers templates. The clause is
  replaced by a comment saying why no clause is needed; the existing tests
  still pin the behaviour.
- `find-duplicate-functions.ts` keeps `templates/` in DEFAULT_EXCLUDES,
  which stays live for explicit `deno task dupes templates` invocations,
  but drops it from DEFAULT_PATHS where it was scanned and then excluded
  in the same breath.

No behaviour change: dupes still reports 234 groups, and both audits still
pass with the same output.
@kojiwakayama

Copy link
Copy Markdown
Contributor Author

CI status: all 9 required checks pass; one non-required check needs a human action

CodeQL is red with "3 new alerts including 3 high severity security vulnerabilities". It is not in the required-check set (Analyze, which is, passed).

The three alerts are not new findings. They are the same three alerts, on the same rules, in the same files, at the same lines — already adjudicated and dismissed on main. CodeQL keys alert identity partly on file path, so a rename re-opens them and the dismissal does not follow:

dismissed on main re-opened on this PR rule location
#14 #278 js/incomplete-multi-character-sanitization …/integrations/teams/files/lib/teams-client.ts:233
#5 #277 js/double-escaping …/integrations/teams/files/lib/teams-client.ts:233
#4 #276 js/double-escaping …/integrations/confluence/files/lib/confluence-client.ts:287

All three were dismissed by @ariskemper as false positive with the comment:

Scaffold template file — copied to user projects, not runtime code

That rationale is about the file's role, not its path, so it applies verbatim after the move. The code itself is provably untouched: git diff --stat -M reports 0 insertions, 0 deletions across all 926 moved files.

I deliberately did not re-dismiss them. Re-applying a security adjudication is the repo owner's call, not something to automate on their behalf. To restore the previous state:

for n in 276 277 278; do
  gh api -X PATCH "repos/veryfront/veryfront-code/code-scanning/alerts/$n" \
    -f state=dismissed -f dismissed_reason='false positive' \
    -f dismissed_comment='Scaffold template file — copied to user projects, not runtime code'
done

Worth deciding separately: whether scaffold template trees should be in CodeQL's scope at all. If not, a paths-ignore for templates/files/** and templates/integrations/** in a CodeQL config would stop this recurring — but that hides future findings in template code too, so it is a policy call rather than part of this move.

@kojiwakayama
kojiwakayama added this pull request to the merge queue Aug 11, 2026
Merged via the queue into main with commit 64d6850 Aug 11, 2026
34 of 35 checks passed
@kojiwakayama
kojiwakayama deleted the refactor/templates-top-level branch August 11, 2026 20:03
kojiwakayama added a commit that referenced this pull request Aug 11, 2026
…olds it

Rebased onto the `cli/templates/` -> `templates/` move (#3596). `./scaffold`
keeps its name - it names the capability, not the directory - and now points
at `./templates/scaffold.ts`.

The second export this branch declared, `./cli/templates/manifest`, is gone.
The manifest is data; `materializeScaffold()` is the behaviour. A consumer
reading the manifest has to reimplement package.json generation, AGENTS.md
injection and .gitignore for itself - a second scaffolder fed from one data
source, which is issue #475 one level down. veryfront-api will call
`materializeScaffold()`, and nothing in this repository or its siblings reads
the raw manifest, so the export had no consumer to keep. Nothing is published
yet, so no name was burned.

The enforcement stays, retargeted:

- `templates/scaffold-export.test.ts` fails if `./scaffold` stops being
  declared, if it points at a file that no longer exists - the exact failure
  the directory move would have caused - or if the module stops exporting the
  behaviour a caller imports it for.
- `npm-install-smoke.sh` step 6 imports the bare specifier from a clean-room
  install and materializes a project through it, so Node resolves it against
  the published `exports` map. The deep `node_modules/veryfront/esm/...` paths
  the other steps use bypass that map, so this is the only step that can catch
  the export going missing; without the entry it fails with
  ERR_PACKAGE_PATH_NOT_EXPORTED.

`scaffold-quality.test.ts` reached the repo config through `../../deno.json`,
which resolves above the repository now that the file sits one level higher;
every template's type-check step failed on the missing config until it was
repointed at `../deno.json`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant